<?php
    /* 
        索引型数组：
            array([0]=>1 [1]=>2 [2]=>3)
        关联型数组
            array([name] => aaa  [age] => 18 )

        往数组中添加数据
            array_push($arr,你要添加的数据)

        php链接数据库：
            【1】连接数据库
                参数1=当地的数据库（一般为localhost） 参数2==数据库的用户名 参数3==数据库的密码 参数4==具体哪一个数据库
                变量1=mysqli_connect(参数1，参数2，参数3，参数4)；

            【2】设置Sql语句（数据库执行的语句）
                            ***表名要用 反引号 引起来
                变量2='SELECT * FROM `表名`';

            【3】执行Sql语句
                变量3=mysqli_query(变量1,变量2);      

            【4】解析执行Sql语句的结果
                 1.变量4 = mysqli_fetch_row(变量3); 以索引型数组解析返回
                 2.变量4 = mysqli_fetch_array(变量3);以混合型数组解析返回（索引型和关联型）
                 3.变量4 = mtsqli_fetch_assoc(变量3) 以关联型数组解析返回
            以上的3种都只会解析第一条数据
                如果连续写
                变量4 = mtsqli_fetch_assoc(变量3)；
                变量4 = mtsqli_fetch_assoc(变量3)；那这条就会自动解析第二条数据
                当表的数据都解析完的时候，就会得到 空白
            所以如果要解析表的全部数据，需要用循环
                定义个数据接受解析的数据
                $arr = array();
                $res = mysqli_fetch_row(变量3);
                // 如果变量4不为 空白
                while（$res）{
                    array_push($arr,$res);
                    $res=mysqli_fetch_row(变量3);
                }
            【5】关闭数据库
                mysqli_close(变量1)
    */
    






    $con = mysqli_connect('localhost','xin','123456','xin');
    // print_r($con);

    $sql = "SELECT * FROM `person`";

    $res = mysqli_query($con,$sql);
    if(!$res){
        // 只能执行这里的代码 就说明执行失败
        // 把错误打印 die()抛出错误
        // PHP中的代码遇到 die() 后面的代码不会在执行
        die('数据库执行失败' . mysqli_error($con));
    }
    $arr=array();
    $row = mysqli_fetch_assoc($res);
   while($row){
       array_push($arr,$row);
       $row = mysqli_fetch_assoc($res);
   }
   $json = json_encode($arr,JSON_UNESCAPED_UNICODE);
    print_r($json);

    mysqli_close($con);
?>